/**
 * WordPress WooCommerce爬虫配置文件
 * 通用配置，适用于大多数WordPress+WooCommerce网站
 */

module.exports = {
    // ==================== 目标网站配置 ====================
    TARGET_SITE: {
        // 目标分类URL (必填)
        CATEGORY_URL: '',
        
        // 网站基础URL，用于处理相对路径 (可选)
        BASE_URL: '',
        
        // 商品链接选择器 (通用选择器)
        PRODUCT_LINK_SELECTOR: 'li.product a.woocommerce-LoopProduct-link',
        
        // 下一页链接选择器 (通用选择器)
        NEXT_PAGE_SELECTOR: 'a.next.page-numbers, .woocommerce-pagination a.next, a.next',
    },

    // ==================== 爬取限制配置 ====================
    CRAWL_LIMITS: {
        // 最大爬取商品数量 (0表示无限制，默认3个)
        MAX_PRODUCTS: 3,
        
        // 最大爬取页面数量 (0表示无限制)
        MAX_PAGES: 10,
        
        // 是否启用深度爬取 (爬取商品详情页)
        DEEP_CRAWL: true,
    },

    // ==================== 请求延迟配置 ====================
    DELAY_CONFIG: {
        // 启用随机延迟 (避免被网站封禁)
        ENABLED: true,
        
        // 商品页面请求延迟范围 [最小值, 最大值] (毫秒)
        PRODUCT_PAGE: [1000, 3000],
        
        // 分类页面请求延迟范围 [最小值, 最大值] (毫秒)
        CATEGORY_PAGE: [1500, 4000],
        
        // 翻页延迟范围 [最小值, 最大值] (毫秒)
        NEXT_PAGE: [2000, 5000],
    },

    // ==================== HTTP请求配置 ====================
    REQUEST_CONFIG: {
        // User-Agent头
        USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
        
        // 请求超时时间 (毫秒)
        TIMEOUT: 30000,
        
        // 重试次数
        RETRY_COUNT: 3,
        
        // 重试延迟 (毫秒)
        RETRY_DELAY: 1000,
    },

    // ==================== 数据提取配置 ====================
    DATA_EXTRACTION: {
        // 商品标题选择器
        TITLE_SELECTOR: 'h1.product_title, .product_title, h1.entry-title',
        
        // 价格选择器
        PRICE_SELECTOR: '.price .woocommerce-Price-amount, .price .amount',
        
        // 促销价格选择器
        SALE_PRICE_SELECTOR: '.price ins .woocommerce-Price-amount, .price ins .amount',
        
        // 原价选择器
        REGULAR_PRICE_SELECTOR: '.price del .woocommerce-Price-amount, .price del .amount',
        
        // 商品描述选择器
        DESCRIPTION_SELECTOR: '.woocommerce-product-details__short-description, .product-short-description, .summary .description',
        
        // 商品图片选择器
        IMAGE_SELECTOR: '.woocommerce-product-gallery__image img, .product-image img, .wp-post-image',
        
        // SKU选择器
        SKU_SELECTOR: '.sku, [data-product_sku]',
        
        // 库存状态选择器
        STOCK_SELECTOR: '.stock, .stock-status, .ast-stock-detail .stock',
        
        // 分类选择器
        CATEGORY_SELECTOR: '.single-product-category a, .product_meta .posted_in a, .breadcrumb a[href*="product-category"]',
        
        // 属性选择器
        ATTRIBUTE_SELECTOR: '.ast-single-variation, .variation, .product-attribute',
    },

    // ==================== CSV导出配置 ====================
    CSV_EXPORT: {
        // 输出目录
        OUTPUT_DIR: 'dist',
        
        // 文件名时间格式 (北京时区)
        FILENAME_DATE_FORMAT: 'YYYY-MM-DD+weekW+HH_mm_ss',
        
        // CSV编码
        ENCODING: 'utf8',
        
        // 是否包含BOM头 (解决中文Excel乱码问题)
        INCLUDE_BOM: true,
    },

    // ==================== 日志配置 ====================
    LOGGING: {
        // 日志级别: debug, info, warn, error
        LEVEL: 'info',
        
        // 是否显示进度条
        SHOW_PROGRESS: true,
        
        // 是否保存详细日志到文件
        SAVE_TO_FILE: false,
        
        // 日志文件路径
        LOG_FILE: 'logs/crawler.log',
    },

    // ==================== 错误处理配置 ====================
    ERROR_HANDLING: {
        // 遇到错误时是否继续爬取
        CONTINUE_ON_ERROR: true,
        
        // 最大错误数量限制
        MAX_ERRORS: 10,
        
        // 是否忽略404错误
        IGNORE_404: true,
        
        // 是否忽略网络错误
        IGNORE_NETWORK_ERRORS: false,
    },

    // ==================== 调试配置 ====================
    DEBUG: {
        // 是否启用调试模式
        ENABLED: false,
        
        // 是否保存原始HTML用于调试
        SAVE_RAW_HTML: false,
        
        // 原始HTML保存目录
        RAW_HTML_DIR: 'debug/html',
        
        // 是否显示详细解析过程
        VERBOSE_PARSING: false,
    }
};